/*------------------- 
a player entity
-------------------------------- */
var PlayerEntity = me.ObjectEntity.extend({ 
    /* ----- 
    constructor 
    ------ */
 
    init: function(x, y, settings) {
        // call the constructor
        this.parent(x, y, settings);
	
        // set the default horizontal & vertical speed (accel vector)
        this.setVelocity(2, 2);
 
        // set the display to follow our position on both axis
        me.game.viewport.follow(this.pos, me.game.viewport.AXIS.BOTH);
 		// Set animations.
        this.addAnimation("walk_down",   [ 0, 1 ]);
        this.addAnimation("walk_left",   [ 4, 5 ]);
        this.addAnimation("walk_up",     [ 2, 3 ]);
        this.addAnimation("walk_right",  [ 6, 7 ]);
        begin = true;
    },
 
    /* -----
 
    update the player pos
 
    ------ */
    update: function() {

         if (me.input.isKeyPressed('left')) {
            // flip the sprite on horizontal axis
            this.setCurrentAnimation("walk_left");
            this.flipX(false);
            // update the entity velocity
            this.vel.x -= this.accel.x * me.timer.tick;
        } else if (me.input.isKeyPressed('right')) {
            // unflip the sprite
            this.setCurrentAnimation("walk_right");
            this.flipX(false);
            // update the entity velocity
            this.vel.x += this.accel.x * me.timer.tick;
        }else if (me.input.isKeyPressed('up')) {
            // unflip the sprite
            this.setCurrentAnimation("walk_up");
            this.flipY(false);
            // update the entity velocity
            this.vel.y -= this.accel.y * me.timer.tick;
        }else if (me.input.isKeyPressed('down')) {
            // unflip the sprite
            this.setCurrentAnimation("walk_down");
            this.flipY(false);
            // update the entity velocity
            this.vel.y += this.accel.y * me.timer.tick;
        }
		else {
            this.vel.x = 0;
			this.vel.y = 0;
        }       
 
        // check & update player movement
        this.updateMovement();

 		// check for collisions
 		// check for collision
	    var res = me.game.collide(this);
	    if (res) {
	    	if(alertOpened==false)
	    	{
	        // if we collide with a building
	        // identify the building
	        // activate behaviour
	        begin = false;
	       	   if(pittore == true)
	       	   {
		       		console.log('Vuoi comprartelo questo quadro?');
		       		interfacciaTestuale.pittore();
		       		alertOpened = true;	 
		       		     		
		       }
		       else if(portone == true)
	       	   {
		       		console.log('Vuoi costruire qui il tuo mistero?');
		       		interfacciaTestuale.portone();
		       		alertOpened = true;	 
		       		     		
		       }
		       else if(pesca == true)
	       	   {
		       		console.log('Vuoi sfidare la sorte provando a pescare?');
		       		interfacciaTestuale.pesca();
		       		alertOpened = true;	 
		       		     		
		       }
		       else if(vivara == true)
	       	   {
		       		console.log('Sei arrivato a Vivara!');
		       		interfacciaTestuale.vivara();
		       		alertOpened = true;	 
		       		     		
		       }
		       else if(abbazia == true)
		       {
		       		console.log('Vuoi scoprire i segreti della teologia?');
		       		interfacciaTestuale.abbazia();
		       		alertOpened = true;	 
		       		    		
		       }
		       else if(bar == true)
		       {
		       		console.log('Vuoi farti una birretta?');
		       		interfacciaTestuale.bar();
		       		alertOpened = true;	  
		
		       }
		       else if(comune == true)
		       {
		       		console.log('Vuoi il permesso per andare a Vivara?');
		       		alertOpened = true;	
		       		interfacciaTestuale.comune(); 
   		
		       }
		       else if(congrega == true)
		       {
		       		console.log('Vuoi iscriverti alla processione?');
		       		alertOpened = true;	 
		       		interfacciaTestuale.congrega();  
	
		       }
		       else if(ferramenta == true)
		       {
		       		console.log('Vuoi martello e chiodi?');
		       		interfacciaTestuale.ferramenta();
		       		alertOpened = true;	   
    		
		       }
		       else if(fioraio == true)
		       {
		       		console.log('Vuoi un bel mazzo di fiori?');
		       		interfacciaTestuale.fioraio();
		       		alertOpened = true;	
      		
		       }
		       else if(fruttivendolo == true)
		       {
		       		console.log('Vuoi una bella cesta di frutta?');
		       		interfacciaTestuale.alimentari();
		       		alertOpened = true;	 
    		
		       }
		       else if(lavoro == true)
		       {
		       		console.log('Il lavoro nobilita. Vuoi faticà?');
		       		interfacciaTestuale.lavoro();
		       		alertOpened = true;	   
  		
		       }
		       else if(orto == true)
		       {
		       		console.log('Se ti vuoi fregare qualcosa, fallo. Ma poi scappa!');
		       		interfacciaTestuale.orto();
		       		alertOpened = true;	
      		
		       }
		       else if(palestra == true)
		       {
		       		console.log('Che fatica tenere il fisico. Facciamo ginnastica?');
		       		interfacciaTestuale.palestra();
		       		alertOpened = true;	
       		
		       }
		       else if(pescheria == true)
		       {
		       		console.log('Vuoi un cuoppo di pesce?');
		       		interfacciaTestuale.porto();
		       		alertOpened = true;
	       		
		       }
		       else if(professore == true)
		       {
		       		console.log('Vuoi imparare la storia della processione?');
		       		interfacciaTestuale.casaDelProfessore();
		       		alertOpened = true;	   
   		
		       }
		       else if(scultore == true)
		       {
		       		console.log('Vuoi comprartelo questa statua di cartapesta?');
		       		interfacciaTestuale.scultore();
		       		alertOpened = true;	
      		
		       }
		       else if(tendone == true)
		       {
		       		console.log('Costruisci!');
		       		if(gioco.oraGiorno <20)
		       		{
		       			//if(gioco.tendone)
		       				interfacciaTestuale.giornoAlTendone();
		       		}
		       		else
		       			interfacciaTestuale.nottata("tendone");
		       		alertOpened = true;	
     		
		       }
		       else if(mostra == true)
		       {
		       		console.log('Impara dai misteri del passato!');
		       		interfacciaTestuale.mostraDeiMisteri();
		       		alertOpened = true;	   
   		
		       }
	      	}
	    }
	    else
	    {
	    	pittore = false;
	    	pesca = false;
	    	vivara = false;
	    	portone = false;
	    	pescheria = false;
			abbazia = false; 
			bar = false;
			comune = false;
			congrega = false;
			ferramenta = false;
			fioraio = false;
			fruttivendolo = false;
			lavoro = false;
			orto = false;
			palestra = false;
			professore = false;
			scultore = false;
			tendone = false;
			mostra = false;
	    	alertOpened = false;
	    	if(begin==false)
	    	interfacciaTestuale.clean();
 		}
        // update animation if necessary
        if (this.vel.x!=0 || this.vel.y!=0) {
            // update object animation
			// the logic of animation must change depending on the type of movement
            this.parent();
				
            return true;
        }
         
        // else inform the engine we did not perform
        // any update (e.g. position, animation)
        return false;
    }
 
});
var pittore = false;
var pesca = false;
var vivara = false;
var portone = false;
var pescheria = false;
var abbazia = false; 
var bar = false;
var comune = false;
var congrega = false;
var ferramenta = false;
var fioraio = false;
var fruttivendolo = false;
var lavoro = false;
var orto = false;
var palestra = false;
var professore = false;
var scultore = false;
var tendone = false;
var mostra = false;

var alertOpened = false;

var PostoEntity = me.ObjectEntity.extend({
    // Whether the place has been already visited.
    "visited" : false,

    // Do something when the place is visited.
    "callback" : null,

    "init" : function init(x, y, settings) {
    	switch (settings.name)
    	{
    		case "PittoreEntity":
    		settings.image = "pittore";
    		break;
    		case "PortoneEntity":
    		settings.image = "portone";
    		break;
    		case "VivaraEntity":
    		settings.image = "grassangle3";
    		break;
    		case "PescaEntity":
    		settings.image = "barca";
    		break;
    		case "AbbaziaEntity":
    		settings.image = "abbazia";
    		break;
    		case "BarEntity":
    		settings.image = "bar";
    		break;
    		case "ComuneEntity":
    		settings.image = "comune";
    		break;
    		case "CongregaEntity":
    		settings.image = "congrega";
    		break;
    		case "FerramentaEntity":
    		settings.image = "ferramenta";
    		break;
    		case "FioraioEntity":
    		settings.image = "fioraio";
    		break;
    		case "FruttivendoloEntity":
    		settings.image = "fruttivendolo";
    		break;
    		case "LavoroEntity":
    		settings.image = "lavoro";
    		break;
    		case "OrtoEntity":
    		settings.image = "orto";
    		break;
    		case "PalestraEntity":
    		settings.image = "palestra";
    		break;
    		case "ProfessoreEntity":
    		settings.image = "professore";
    		break;
    		case "ScultoreEntity":
    		settings.image = "scultore";
    		break;
    		case "TendoneEntity":
    		settings.image = "tendone";
    		break;
    		case "PescheriaEntity":
    		settings.image = "pescheria";
    		break;
    		case "MostraEntity":
    		settings.image = "mostra";
    		break;
    		default:
    		settings.image = "erba";
    		break;
    		
    	}
		

        // call the parent constructor
        this.parent(x, y, settings);
		
        // make it collidable
        this.collidable = true;
        // make it an action object
        this.type = me.game.ACTION_OBJECT;
		
 
    },

    "interact" : function interact(actor, callback) {
    },
    
    // this function is called by the engine, when
    // an object is touched by something 
    onCollision: function() {
        this.collidable = true;    
        if(pittore == false && this.name =="pittoreentity")
        {
        	console.log('Arrivati a '+this.name); 
        	pittore = true;
        }
        if(pesca == false && this.name =="pescaentity")
        {
        	console.log('Arrivati a '+this.name); 
        	pesca = true;
        }
        if(vivara == false && this.name =="vivaraentity")
        {
        	console.log('Arrivati a '+this.name); 
        	vivara = true;
        }
        if(portone == false && this.name =="portoneentity")
        {
        	console.log('Arrivati a '+this.name); 
        	portone = true;
        }
        if(abbazia == false && this.name =="abbaziaentity")
        {
        	console.log('Arrivati a '+this.name); 
        	abbazia = true;
        }
        if(bar == false && this.name =="barentity")
        {
        	console.log('Arrivati a '+this.name); 
        	bar = true;
        }
        if(comune == false && this.name =="comuneentity")
        {
        	console.log('Arrivati a '+this.name); 
        	comune = true;
        }
        if(congrega == false && this.name =="congregaentity")
        {
        	console.log('Arrivati a '+this.name); 
        	congrega = true;
        }
        if(ferramenta == false && this.name =="ferramentaentity")
        {
        	console.log('Arrivati a '+this.name); 
        	ferramenta = true;
        }
        if(fioraio == false && this.name =="fioraioentity")
        {
        	console.log('Arrivati a '+this.name); 
        	fioraio = true;
        }
        if(fruttivendolo == false && this.name =="fruttivendoloentity")
        {
        	console.log('Arrivati a '+this.name); 
        	fruttivendolo = true;
        }
        if(lavoro == false && this.name =="lavoroentity")
        {
        	console.log('Arrivati a '+this.name); 
        	lavoro = true;
        }
        if(orto == false && this.name =="ortoentity")
        {
        	console.log('Arrivati a '+this.name); 
        	orto = true;
        }
        if(palestra == false && this.name =="palestraentity")
        {
        	console.log('Arrivati a '+this.name); 
        	palestra = true;
        }
        if(pescheria == false && this.name =="pescheriaentity")
        {
        	console.log('Arrivati a '+this.name); 
        	pescheria = true;
        }
        if(professore == false && this.name =="professoreentity")
        {
        	console.log('Arrivati a '+this.name); 
        	professore = true;
        }
        if(scultore == false && this.name =="scultoreentity")
        {
        	console.log('Arrivati a '+this.name); 
        	scultore = true;
        }
		if(tendone == false && this.name =="tendoneentity")
        {
        	console.log('Arrivati a '+this.name); 
        	tendone = true;
        }
        if(mostra == false && this.name =="mostraentity")
        {
        	console.log('Arrivati a '+this.name); 
        	mostra = true;
        }
	       	
    }
    	
});


